home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_glimpse.idb / usr / freeware / catman / u_man / cat1 / glimpse.Z / glimpse
Text File  |  1997-09-09  |  49KB  |  991 lines

  1.  
  2.  
  3.  
  4.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       _g_l_i_m_p_s_e _3._0 -    search quickly through entire file systems
  10.  
  11.      OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
  12.       _G_l_i_m_p_s_e (which stands    for GLobal IMPlicit SEarch) is an
  13.       indexing and query system that allows    you to search through
  14.       all your files very quickly.    Glimpse    supports most of
  15.       _a_g_r_e_p's options (_a_g_r_e_p is our    powerful version of _g_r_e_p)
  16.       including approximate    matching (e.g.,    finding    misspelled
  17.       words), Boolean queries, and even some limited forms of
  18.       regular expressions. It is used in the same way, except that
  19.       you don't have to specify file names.     So, if    you are
  20.       looking for a    _n_e_e_d_l_e anywhere    in your    file system, all you
  21.       have to do is    say _g_l_i_m_p_s_e _n_e_e_d_l_e and all lines containing
  22.       _n_e_e_d_l_e will appear preceded by the file name.
  23.  
  24.       To use glimpse you first need    to index your files with
  25.       glimpseindex,    which is typically run every night.
  26.       _g_l_i_m_p_s_e_i_n_d_e_x -_o ~  will index    everything at or below your
  27.       home directory.  See man glimpseindex    for more details.
  28.  
  29.       Glimpse is also available for    HTTP servers, to provide
  30.       search of local data,    as a set of tools called _G_l_i_m_p_s_e_H_T_T_P.
  31.       See http://glimpse.cs.arizona.edu:1994/ghttp/    for more
  32.       information.
  33.  
  34.       Glimpse includes all of agrep    and can    be used    instead    of
  35.       agrep    by giving a file name(s) at the    end of the command.
  36.       This will cause glimpse to ignore the    index and run agrep as
  37.       usual. For example, _g_l_i_m_p_s_e -_1 _p_a_t_t_e_r_n _f_i_l_e is the same as
  38.       _a_g_r_e_p    -_1 _p_a_t_t_e_r_n _f_i_l_e.  We added a new option    to agrep:  -r
  39.       searches recursively the directory and everything below it
  40.       (see agrep options below); it    is used    only when glimpse
  41.       reverts to agrep.
  42.  
  43.       Mail glimpse-request@cs.arizona.edu to be added to the
  44.       glimpse mailing list.     Mail glimpse@cs.arizona.edu to    report
  45.       bugs,    ask questions, discuss tricks for using    glimpse, etc.
  46.       (this    is a moderated mailing list with very little traffic,
  47.       mostly announcements).  HTML version of these    manual pages
  48.       can be found in
  49.       http://glimpse.cs.arizona.edu:1994/glimpsehelp.html Also,
  50.       see the glimpse developers home page in
  51.       http://glimpse.cs.arizona.edu:1994/
  52.  
  53.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  54.       gggglllliiiimmmmppppsssseeee [ ----((((aaaaggggrrrreeeepppp''''ssss ooooppppttttiiiioooonnnnssss)))) ----CCCC ----FFFF _f_i_l_e__p_a_t_t_e_r_n ----HHHH _d_i_r_e_c_t_o_r_y
  55.       ----JJJJ _h_o_s_t__n_a_m_e ----KKKK _p_o_r_t__n_u_m_b_e_r ----LLLL xxxx ----NNNN ----TTTT _d_i_r_e_c_t_o_r_y ----VVVV ----WWWW ----zzzz ]
  56.       _p_a_t_t_e_r_n
  57.  
  58.      IIIINNNNTTTTRRRROOOODDDDUUUUCCCCTTTTIIIIOOOONNNN
  59.       We start with    simple ways to use glimpse and describe    all
  60.  
  61.  
  62.  
  63.      Page 1                         (printed 11/3/95)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  71.  
  72.  
  73.  
  74.       the options in detail    later on.  Once    an index is built,
  75.       using    glimpseindex, searching    for _p_a_t_t_e_r_n is as easy as
  76.       saying
  77.  
  78.       _g_l_i_m_p_s_e _p_a_t_t_e_r_n
  79.  
  80.       The output of    glimpse    is similar to that of _a_g_r_e_p (or    any
  81.       other    grep), except that the name of the file    containing the
  82.       match    appears    at the beginning of the    line by    default.  The
  83.       pattern can be any agrep legal pattern including a regular
  84.       expression or    a Boolean query    (e.g., searching for Tucson
  85.       AND Arizona is done by _g_l_i_m_p_s_e '_T_u_c_s_o_n;_A_r_i_z_o_n_a').
  86.  
  87.       The speed of glimpse depends mainly on the number and    sizes
  88.       of the files that contain a match and    only to    a second
  89.       degree on the    total size of all indexed files.  If the
  90.       pattern is reasonably    uncommon, then all matches will    be
  91.       reported in a    few seconds even if the    indexed    files total
  92.       500MB    or more.  Some information on how glimpse works    and a
  93.       reference to a detailed article are given below.
  94.  
  95.       Most of agrep    (and other grep's) options are supported,
  96.       including approximate    matching.  For example,
  97.  
  98.       _g_l_i_m_p_s_e -_1 '_T_u_s_o_n;_A_r_e_z_o_n_a'
  99.  
  100.       will output all lines    containing both    patterns allowing one
  101.       spelling error in any    of the patterns    (either    insertion,
  102.       deletion, or substitution), which in this case is definitely
  103.       needed.
  104.  
  105.       _g_l_i_m_p_s_e -_w -_i    '_p_a_r_e_n_t'
  106.  
  107.       specifies case insensitive (-i) and match on complete    words
  108.       (-w).     So 'Parent' and 'PARENT' will match, 'parent/child'
  109.       will match, but 'parenthesis'    or 'parents' will not match.
  110.       (Starting at version 3.0, glimpse can    be much    faster when
  111.       these    two options are    specified, especially for very large
  112.       indexes.  You    may want to set    an alias especially for
  113.       "glimpse -w -i".)
  114.  
  115.       The -F option    provides a pattern that    must match the file
  116.       name.     For example,
  117.  
  118.       _g_l_i_m_p_s_e -_F '\._c$' _n_e_e_d_l_e
  119.  
  120.       will find the    pattern    _n_e_e_d_l_e in all files whose name ends
  121.       with .c.  (Glimpse will first    check its index    to determine
  122.       which    files may contain the pattern and then run agrep on
  123.       the file names to further limit the search.)    The -F option
  124.       _s_h_o_u_l_d _n_o_t be    put at the end after the main pattern (e.g.,
  125.       "glimpse needle -F hay" is incorrect).
  126.  
  127.  
  128.  
  129.      Page 2                         (printed 11/3/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  137.  
  138.  
  139.  
  140.      DDDDEEEETTTTAAAAIIIILLLLEEEEDDDD DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN OOOOFFFF GGGGLLLLIIIIMMMMPPPPSSSSEEEE
  141.       The use of glimpse is    similar    to that    of agrep (or any other
  142.       grep), except    that there is no need to specify file names.
  143.       Most of agrep's (and other greps) options are    supported.  It
  144.       is important to have in mind that the    search is over many
  145.       files.  Using    very common patterns may lead to a huge    number
  146.       of matches.  Running _g_l_i_m_p_s_e _a will work, but    will take a
  147.       long time and    will probably output all of the    indexed    files.
  148.       We start with    the new    options, and then list all of agrep's
  149.       original options (with some additional comments when
  150.       relevant).
  151.  
  152.      TTTThhhheeee NNNNeeeewwww OOOOppppttttiiiioooonnnnssss ooooffff    GGGGlllliiiimmmmppppsssseeee
  153.       ----aaaa   prints attribute    names.    This option applies only to
  154.            structured data (used with glimpseindex -s); this
  155.            option was added    to support the Harvest project.     See
  156.            STRUCTURED QUERIES below    for more information and also
  157.            http://harvest.cs.colorado.edu for more information
  158.            about the Harvest project.
  159.  
  160.       ----CCCC   tells glimpse to    send its queries to _g_l_i_m_p_s_e_s_e_r_v_e_r.
  161.            See man glimpseserver for more details.
  162.  
  163.       ----EEEE   prints the lines    in the index (as they appear in    the
  164.            index) which match the pattern.    Used mostly for
  165.            debugging and maintenance of the    index.
  166.  
  167.       ----FFFF _f_i_l_e__p_a_t_t_e_r_n
  168.            limits the search to those files    whose name (including
  169.            the whole path) matches _f_i_l_e__p_a_t_t_e_r_n.  If _f_i_l_e__p_a_t_t_e_r_n
  170.            matches a directory, then all files with    this directory
  171.            on their    path will be considered.  To limit the search
  172.            to actual file names, use $ at the end of the pattern.
  173.            _f_i_l_e__p_a_t_t_e_r_n can    be a regular expression    and even a
  174.            Boolean pattern.     (Glimpse simply runs agrep
  175.            _f_i_l_e__p_a_t_t_e_r_n on the list    of file    names obtained from
  176.            the index to filter the list.)  For example,
  177.  
  178.            glimpse -F 'src#\.c$' needle
  179.  
  180.            will search for needle in all .c    files with src
  181.            somewhere along the path.  The -F _f_i_l_e__p_a_t_t_e_r_n must
  182.            appear before the search    pattern    (e.g., glimpse needle
  183.            -F '\.c$' will not work).  It is    possible to use    some
  184.            of agrep's options when matching    file names.  In    this
  185.            case all    options    as well    as the file_pattern should be
  186.            in quotes.  (-B and -v do not work very well as part of
  187.            a file_pattern.)     For example,
  188.  
  189.            glimpse -F '-1 gopherc' pattern
  190.  
  191.            will allow one spelling error when matching gopherc to
  192.  
  193.  
  194.  
  195.      Page 3                         (printed 11/3/95)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  203.  
  204.  
  205.  
  206.            the file    names (so "gopherrc" and "gopher" will be
  207.            considered as well).
  208.  
  209.            glimpse -F '-v \.c$' counter
  210.  
  211.            will search for 'counter' in all    files _e_x_c_e_p_t for .c
  212.            files.
  213.  
  214.       ----HHHH _d_i_r_e_c_t_o_r_y__n_a_m_e
  215.            searches    for the    index and the other .glimpse files in
  216.            _d_i_r_e_c_t_o_r_y__n_a_m_e.    The default is the home    directory.
  217.            This option is useful, for example, if several
  218.            different indexes are maintained    for different archives
  219.            (e.g., one for mail messages, one for source code, one
  220.            for articles).
  221.  
  222.       ----JJJJ _h_o_s_t__n_a_m_e
  223.            used in conjunction with    glimpseserver (-C) to connect
  224.            to one particular server.  See man glimpseserver    for
  225.            more details.
  226.  
  227.       ----KKKK _p_o_r_t__n_u_m_b_e_r
  228.            used in conjunction with    glimpseserver (-C) to connect
  229.            to one particular server    at the specified TCP port
  230.            number.    See man    glimpseserver for more details.
  231.  
  232.       ----LLLL xxxx |||| xxxx::::yyyy |||| xxxx::::yyyy::::zzzz
  233.            if one number is    given, it is a limit on    the total
  234.            number of matches.  Glimpse outputs only    the first x
  235.            matches.    If -l is used (i.e., only file names are
  236.            sought),    then the limit is on the number    of files;
  237.            otherwise, the limit is on the number of    records.  If
  238.            two numbers are given (x:y), then y is an added limit
  239.            on the total number of files.  If three numbers are
  240.            given (x:y:z), then z is    an added limit on the number
  241.            of matches per file.  If    any of the x, y, or z is set
  242.            to 0, it    means to ignore    it (in other words 0 =
  243.            infinity    in this    case);    for example, -L    0:10 will
  244.            output all matches to the first 10 files    that contain a
  245.            match.
  246.  
  247.       ----NNNN   searches    only the index (so the search is faster).  If
  248.            -o or -b    are used then the result is the    number of
  249.            files that have a potential match plus a    prompt to ask
  250.            if you want to see the file names.  (If -y is used,
  251.            then there is no    prompt and the names of    the files will
  252.            be shown.)  This    could be a way to get the matching
  253.            file names without even having access to    the files
  254.            themselves.  However, because only the index is
  255.            searched, some potential    matches    may not    be real
  256.            matches.     In other words, with -N you will not miss any
  257.            file but    you may    get extra files.  For example, since
  258.  
  259.  
  260.  
  261.      Page 4                         (printed 11/3/95)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  269.  
  270.  
  271.  
  272.            the index stores    everything in lower case, a case-
  273.            sensitive query may match a file    that has only a    case-
  274.            insensitive match.  Boolean queries may match a file
  275.            that has    all the    keywords but not in the    same line
  276.            (indexing with -b allows    glimpse    to figure out whether
  277.            the keywords are    close, but it cannot figure out    from
  278.            the index whether they are exactly on the same line or
  279.            in the same record without looking at the file).     If
  280.            the index was not build with -o or -b, then this    option
  281.            outputs the number of _b_l_o_c_k_s matching the pattern. This
  282.            is useful as an indication of how long the search will
  283.            take.  All files    are partitioned    into usually 200-250
  284.            blocks.    The file ....gggglllliiiimmmmppppsssseeee____ssssttttaaaattttiiiissssttttiiiiccccssss contains the
  285.            total number of blocks (or gggglllliiiimmmmppppsssseeee ----NNNN aaaa will give a
  286.            pretty good estimate; only blocks with no occurrences
  287.            of 'a' will be missed).
  288.  
  289.       ----QQQQ   an extension to -N that not only    displays the filename
  290.            where the match occurs, but the exact occurrences
  291.            (offsets) as seen in the    index.
  292.  
  293.       ----TTTT ddddiiiirrrreeeeccccttttoooorrrryyyy
  294.            Use _d_i_r_e_c_t_o_r_y as    a place    where temporary    files are
  295.            built.  (Glimpse    produces some small temporary files
  296.            usually in /tmp.)  This option is useful    mainly in the
  297.            context of structured queries for the Harvest project,
  298.            where the temporary files may be    non-trivial.
  299.  
  300.       ----VVVV   prints the current version of glimpse.
  301.  
  302.       ----WWWW   The default for Boolean AND queries is that they    cover
  303.            one record (the default for a record is one line) at a
  304.            time. For example, glimpse 'good;bad' will output all
  305.            lines containing    both 'good' and    'bad'.    The -W option
  306.            changes the scope of Booleans to    be the whole file.
  307.            Within a    file glimpse will output all matches to    any of
  308.            the patterns.  So, glimpse -W 'good;bad'    will output
  309.            all lines containing 'good' _o_r 'bad', but only in files
  310.            that contain both patterns.  For    structured queries,
  311.            the scope is always the whole attribute or file.
  312.  
  313.       ----zzzz   Allow customizable filtering, using the file
  314.            .glimpse_filters    to perform the programs    listed there
  315.            for each    match.    The best example is
  316.            compress/decompress.  If    .glimpse_filters include the
  317.            line
  318.            *.Z   uncompress    <
  319.            (separated by tabs) then    before indexing    any file that
  320.            matches the pattern "*.Z" (same syntax as the one for
  321.            .glimpse_exclude) the command listed is executed    first
  322.            (assuming input is from stdin, which is why uncompress
  323.            needs <)    and its    output (assuming it goes to stdout) is
  324.  
  325.  
  326.  
  327.      Page 5                         (printed 11/3/95)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  335.  
  336.  
  337.  
  338.            indexed.     The file itself is not    changed    (i.e., it
  339.            stays compressed).  Then    if glimpse -z is used, the
  340.            same program is used on these files on the fly.    Any
  341.            program can be used (we run 'exec').  For example, one
  342.            can filter out parts of files that should not be
  343.            indexed.     Glimpseindex tries to apply all filters in
  344.            .glimpse_filters    in the order they are given.  For
  345.            example,    if you want to uncompress a file and then
  346.            extract some part of it,    put the    compression command
  347.            (the example above) first and then another line that
  348.            specifies the extraction.  Note that this can slow down
  349.            the search because the filters need to be run before
  350.            files are searched.  (See also glimpseindex.)
  351.  
  352.      TTTThhhheeee OOOOppppttttiiiioooonnnnssss ooooffff AAAAggggrrrreeeepppp SSSSuuuuppppppppoooorrrrtttteeeedddd bbbbyyyy GGGGlllliiiimmmmppppsssseeee
  353.       ----#   # is an integer between 1 and 8 specifying the maximum
  354.            number of errors    permitted in finding the approximate
  355.            matches (the default is zero).  Generally, each
  356.            insertion, deletion, or substitution counts as one
  357.            error.  It is possible to adjust    the relative cost of
  358.            insertions, deletions and substitutions (see -I -D and
  359.            -S options).  Since the index stores only lower case
  360.            characters, errors of substituting upper    case with
  361.            lower case may be missed    (see LIMITATIONS).
  362.  
  363.       ----cccc   Display only the    count of matching records.  Only files
  364.            with count > 0 are displayed.
  365.  
  366.       ----dddd ''''_d_e_l_i_m''''
  367.            Define _d_e_l_i_m to be the separator    between    two records.
  368.            The default value is '$', namely    a record is by default
  369.            a line.    _d_e_l_i_m can be a string of size at most 8    (with
  370.            possible    use of ^ and $), but not a regular expression.
  371.            Text between two    _d_e_l_i_m's, before    the first _d_e_l_i_m, and
  372.            after the last _d_e_l_i_m is considered as one record.  For
  373.            example,    -d '$$'    defines    paragraphs as records and -d
  374.            '^From '    defines    mail messages as records.  _g_l_i_m_p_s_e
  375.            matches each record separately.    This option does not
  376.            currently work with regular expressions.     The -d    option
  377.            is especially useful for    Boolean    AND queries, because
  378.            the patterns need not appear in the same    line but in
  379.            the same    record.    For example, _g_l_i_m_p_s_e -_F    _m_a_i_l -_d
  380.            '^_F_r_o_m '    '_g_l_i_m_p_s_e;_a_r_i_z_o_n_a;_a_n_n_o_u_n_c_e_m_e_n_t' will output all
  381.            mail messages (in their entirety) that have the 3
  382.            patterns    anywhere in the    message    (or the    header),
  383.            assuming    that files with    'mail' in their    name contain
  384.            mail messages.  If you want to output a whole file that
  385.            matches a Boolean pattern, you can use -d 'O9g1Xs' (or
  386.            another garbage pattern).  If the delimiter doesn't
  387.            appear anywhere,    the whole file is one record (there is
  388.            a limit,    however, to the    size of    records, see
  389.            LIMITATIONS).  GGGGlllliiiimmmmppppsssseeee wwwwaaaarrrrnnnniiiinnnngggg:    Use this option    with
  390.  
  391.  
  392.  
  393.      Page 6                         (printed 11/3/95)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  401.  
  402.  
  403.  
  404.            care.  If the delimiter is set to match mail messages,
  405.            for example, and    glimpse    finds the pattern in a regular
  406.            file, it    may not    find the delimiter and will therefore
  407.            output the whole    file.  (The -t option -    see below -
  408.            can be used to put the _d_e_l_i_m at the end of the record.)
  409.  
  410.       ----eeee _p_a_t_t_e_r_n
  411.            Same as a simple    _p_a_t_t_e_r_n    argument, but useful when the
  412.            _p_a_t_t_e_r_n begins with a `----'.
  413.  
  414.       ----hhhh   Do not display filenames.
  415.  
  416.       ----iiii   Case-insensitive    search - e.g., "A" and "a" are
  417.            considered equivalent.  Glimpse's index stores all
  418.            patterns    in lower case (see LIMITATIONS below).
  419.  
  420.       ----kkkk   No symbol in the    pattern    is treated as a    meta
  421.            character. For example, glimpse -k 'a(b|c)*d' will find
  422.            the occurrences of a(b|c)*d whereas glimpse 'a(b|c)*d'
  423.            will find substrings that match the regular expression
  424.            'a(b|c)*d'.  (The only exception    is ^ at    the beginning
  425.            of the pattern and $ at the end of the pattern, which
  426.            are still interpreted in    the usual way. Use \^ or \$ if
  427.            you need    them verbatim.)
  428.  
  429.       ----llll   Output only the files names that    contain    a match.
  430.  
  431.       ----nnnn   Each matching record (line) is prefixed by its record
  432.            (line) number in    the file.
  433.  
  434.       ----rrrr   (This option is valid only when a file name is given
  435.            and glimpse is used as agrep; it    is a new agrep
  436.            option.)     If the    file name is a directory name, glimpse
  437.            will search (recursively) the whole directory and
  438.            everything below    it.  Glimpse will not use its index.
  439.  
  440.       ----ssss   Work silently, that is, display nothing except error
  441.            messages.  This is useful for checking the error
  442.            status.
  443.  
  444.       ----tttt   Output the record starting from the end of _d_e_l_i_m    to
  445.            (and including) the next    _d_e_l_i_m. This is useful for
  446.            cases where _d_e_l_i_m should    come at    the end    of the record.
  447.            (See warning for    the -d option.)
  448.  
  449.       ----wwww   Search for the pattern as a word    - i.e.,    surrounded by
  450.            non-alphanumeric    characters.  For example, _g_l_i_m_p_s_e -_w
  451.            -_1 _c_a_r will match cars, but not characters and not
  452.            car10.  The non-alphanumeric _m_u_s_t surround the match;
  453.            they cannot be counted as errors.  This option does not
  454.            work with regular expressions.
  455.  
  456.  
  457.  
  458.  
  459.      Page 7                         (printed 11/3/95)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  467.  
  468.  
  469.  
  470.       ----xxxx   The pattern must    match the whole    line.  (This option is
  471.            translated to -w    when the index is searched and it is
  472.            used only when the actual text is searched.  It is of
  473.            limited use in glimpse.)
  474.  
  475.       ----yyyy   Do not prompt.  Proceed with the    match as if the    answer
  476.            to any prompt is    y.
  477.  
  478.       ----BBBB   Best match mode.     (Warning: -B sometimes    misses
  479.            matches.     It is safer to    specify    the number of errors
  480.            explicitly.)  When -B is    specified and no exact matches
  481.            are found, glimpse will continue    to search until    the
  482.            closest matches (i.e., the ones with minimum number of
  483.            errors) are found, at which point the following message
  484.            will be shown:  "the best match contains    x errors,
  485.            there are y matches, output them? (y/n)"    This message
  486.            refers to the number of matches found in    the index.
  487.            There may be many more matches in the actual text (or
  488.            there may be none if -F is used to filter files).  When
  489.            the -#, -c, or -l options are specified,    the -B option
  490.            is ignored.  In general,    -B may be slower than -#, but
  491.            not by very much.  Since    the index stores only lower
  492.            case characters,    errors of substituting upper case with
  493.            lower case may be missed    (see LIMITATIONS).
  494.  
  495.       ----DDDD_k  Set the cost of a deletion to _k (_k is a positive
  496.            integer).  This option does not currently work with
  497.            regular expressions.
  498.  
  499.       ----GGGG   Output the (whole) files    that contain a match.
  500.  
  501.       ----IIII_k  Set the cost of an insertion to _k (_k is a positive
  502.            integer).  This option does not currently work with
  503.            regular expressions.
  504.  
  505.       ----SSSS_k  Set the cost of a substitution to _k (_k is a positive
  506.            integer).  This option does not currently work with
  507.            regular expressions.
  508.  
  509.       The characters `$$$$', `^'''',,,, `****',    `[[[[',,,, `]]]]',,,, `^^^^', `||||', `((((', `))))',
  510.       `!!!!', and `\\\\' can cause unexpected results when included in
  511.       the _p_a_t_t_e_r_n, as these    characters are also meaningful to the
  512.       shell.  To avoid these problems, enclose the entire pattern
  513.       in single quotes, i.e., 'pattern'.  Do not use double    quotes
  514.       (").
  515.  
  516.      PPPPAAAATTTTTTTTEEEERRRRNNNNSSSS
  517.       _g_l_i_m_p_s_e supports a large variety of patterns,    including
  518.       simple strings, strings with classes of characters, sets of
  519.       strings, wild    cards, and regular expressions (see
  520.       LIMITATIONS).
  521.  
  522.  
  523.  
  524.  
  525.      Page 8                         (printed 11/3/95)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  533.  
  534.  
  535.  
  536.       SSSSttttrrrriiiinnnnggggssss
  537.            Strings are any sequence    of characters, including the
  538.            special symbols `^' for beginning of line and `$' for
  539.            end of line.  The following special characters (    `$$$$',
  540.            `^'''',,,, `****', `[[[[',,,, `^^^^', `||||',    `((((', `))))', `!!!!', and `\\\\' ) as
  541.            well as the following meta characters special to
  542.            glimpse (and agrep):  `;;;;', `,,,,', `####', `<<<<', `>>>>', `----', and
  543.            `....', should be preceded by `\' if they are to be
  544.            matched as regular characters.  For example, \^abc\\
  545.            corresponds to the string ^abc\,    whereas    ^abc
  546.            corresponds to the string abc at    the beginning of a
  547.            line.
  548.  
  549.       CCCCllllaaaasssssssseeeessss ooooffff cccchhhhaaaarrrraaaacccctttteeeerrrrssss
  550.            a list of characters inside [] (in order) corresponds
  551.            to any character    from the list.    For example, [a-ho-z]
  552.            is any character    between    a and h    or between o and z.
  553.            The symbol `^' inside []    complements the    list.  For
  554.            example,    [^i-n] denote any character in the character
  555.            set except character 'i'    to 'n'.     The symbol `^'    thus
  556.            has two meanings, but this is consistent    with egrep.
  557.            The symbol `.' (don't care) stands for any symbol
  558.            (except for the newline symbol).
  559.  
  560.       BBBBoooooooolllleeeeaaaannnn ooooppppeeeerrrraaaattttiiiioooonnnnssss
  561.            GGGGlllliiiimmmmppppsssseeee supports    an `AND' operation denoted by the
  562.            symbol `;' an `OR' operation denoted by the symbol `,',
  563.            or any combination. For example,    _g_l_i_m_p_s_e
  564.            '_p_i_z_z_a;_c_h_e_e_s_e_b_u_r_g_e_r' will output    all lines containing
  565.            both patterns.  _g_l_i_m_p_s_e -_F '_g_n_u;\._c$' '_d_e_f_i_n_e;_D_E_F_A_U_L_T'
  566.            will output all lines containing    both 'define' and
  567.            'DEFAULT' (anywhere in the line,    not necessarily    in
  568.            order) in files whose name contains 'gnu' and ends with
  569.            .c.  _g_l_i_m_p_s_e '{_p_o_l_i_t_i_c_a_l,_c_o_m_p_u_t_e_r};_s_c_i_e_n_c_e' will    match
  570.            'political science' or 'science of computers'.
  571.  
  572.       WWWWiiiilllldddd ccccaaaarrrrddddssss
  573.            The symbol '#' is used to denote    a sequence of any
  574.            number (including 0) of arbitrary characters (see
  575.            LIMITATIONS). The symbol    # is equivalent    to .* in
  576.            egrep.  In fact,    .* will    work too, because it is    a
  577.            valid regular expression    (see below), but unless    this
  578.            is part of an actual regular expression,    # will work
  579.            faster. (Currently glimpse is experiencing some
  580.            problems    with #.)
  581.  
  582.       CCCCoooommmmbbbbiiiinnnnaaaattttiiiioooonnnn ooooffff eeeexxxxaaaacccctttt aaaannnndddd aaaapppppppprrrrooooxxxxiiiimmmmaaaatttteeee mmmmaaaattttcccchhhhiiiinnnngggg
  583.            Any pattern inside angle    brackets <> must match the
  584.            text exactly even if the    match is with errors.  For
  585.            example,    <mathemat>ics matches mathematical with    one
  586.            error (replacing    the last s with    an a), but
  587.            mathe<matics> does not match mathematical no matter how
  588.  
  589.  
  590.  
  591.      Page 9                         (printed 11/3/95)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  599.  
  600.  
  601.  
  602.            many errors are allowed.     (This option is buggy at the
  603.            moment.)
  604.  
  605.       RRRReeeegggguuuullllaaaarrrr eeeexxxxpppprrrreeeessssssssiiiioooonnnnssss
  606.            Since the index is word based, a    regular    expression
  607.            must match words    that appear in the index for glimpse
  608.            to find it.  Glimpse first strips the regular
  609.            expression from all non-alphabetic characters, and
  610.            searches    the index for all remaining words.  It then
  611.            applies the regular expression matching algorithm to
  612.            the files found in the index.  For example, _g_l_i_m_p_s_e
  613.            'abc.*xyz' will search the index    for all    files that
  614.            contain both 'abc' and 'xyz', and then search directly
  615.            for 'abc.*xyz' in those files.  (If you use glimpse -w
  616.            'abc.*xyz', then    'abcxyz' will not be found, because
  617.            glimpse will think that abc and xyz need    to be matches
  618.            to whole    words.)     The syntax of regular expressions in
  619.            gggglllliiiimmmmppppsssseeee is in general the same as that for aaaaggggrrrreeeepppp.  The
  620.            union operation `|', Kleene closure `*',    and
  621.            parentheses () are all supported.  Currently '+'    is not
  622.            supported.  Regular expressions are currently limited
  623.            to approximately    30 characters (generally excluding
  624.            meta characters).  Some options (-d, -w,    -t, -x,    -D,
  625.            -I, -S) do not currently    work with regular expressions.
  626.            The maximal number of errors for    regular    expressions
  627.            that use    '*' or '|' is 4. (See LIMITATIONS.)
  628.  
  629.       ssssttttrrrruuuuccccttttuuuurrrreeeedddd qqqquuuueeeerrrriiiieeeessss
  630.            Glimpse supports    some form of structured    queries    using
  631.            Harvest's SOIF format.  See STRUCTURED QUERIES below
  632.            for details.
  633.  
  634.      EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  635.       (Run "glimpse    '^glimpse' this-file" to get a list of all
  636.       examples, some of which were given earlier.)
  637.  
  638.       glimpse -F 'haystack.h$' needle
  639.            finds all needles in all    haystack.h's files.
  640.  
  641.       glimpse -2 -F    html Anestesiology
  642.            outputs all occurrences of Anestesiology    with two
  643.            errors in files with html somewhere in their full name.
  644.  
  645.       glimpse -l -F    '.c$' variablename
  646.            lists the names of all .c files that contain
  647.            variablename (the -l option lists file names rather
  648.            than output the matched lines).
  649.  
  650.       glimpse -F 'mail;1993' 'windsurfing;Arizona'
  651.            finds all lines containing _w_i_n_d_s_u_r_f_i_n_g and _A_r_i_z_o_n_a in
  652.            all files having    `mail' and '1993' somewhere in their
  653.            full name.
  654.  
  655.  
  656.  
  657.      Page 10                         (printed 11/3/95)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  665.  
  666.  
  667.  
  668.       glimpse -F mail 't.j@#uk'
  669.            finds all mail addresses    (search    only files with    mail
  670.            somewhere in their name)    from the uk, where the login
  671.            name ends with t.j, where the . stands for any one
  672.            character. (This    is very    useful to find a login name of
  673.            someone whose middle name you don't know.)
  674.  
  675.       glimpse -F mbox -h -G     . > MBOX
  676.            concatenates all    files whose name matches `mbox'    into
  677.            one big one.
  678.  
  679.      SSSSEEEEAAAARRRRCCCCHHHHIIIINNNNGGGG IIIINNNN CCCCOOOOMMMMPPPPRRRREEEESSSSSSSSEEEEDDDD FFFFIIIILLLLEEEESSSS
  680.       Glimpse includes an optional new compression program,    called
  681.       _c_a_s_t,    which allows glimpse (and agrep) to search the
  682.       compressed files without having to decompress    them.  The
  683.       search is actually significantly faster when the files are
  684.       compressed.  However,    we have    not tested _c_a_s_t    as thoroughly
  685.       as we    would have liked, and a    mishap in a compression
  686.       algorithm can    cause loss of data, so we recommend at this
  687.       point    to use _c_a_s_t very carefully.  (Unless you specifically
  688.       use _c_a_s_t, the    default    is to ignore it.)
  689.  
  690.      GGGGLLLLIIIIMMMMPPPPSSSSEEEEIIIINNNNDDDDEEEEXXXX FFFFIIIILLLLEEEESSSS
  691.       All files used by glimpse are    located    at the directory(ies)
  692.       where    the index(es) is (are) stored and have .glimpse_ as a
  693.       prefix.  The first two files (.glimpse_exclude and
  694.       .glimpse_include) are    optionally supplied by the user.  The
  695.       other    files are built    and read by glimpse.
  696.  
  697.       ....gggglllliiiimmmmppppsssseeee____eeeexxxxcccclllluuuuddddeeee
  698.            contains    a list of files    that glimpseindex is
  699.            explicitly told to ignore. In general, the syntax of
  700.            .glimpse_exclude/include    is the same as that of agrep
  701.            (or any other grep).  The lines in the .glimpse_exclude
  702.            file are    matched    to the file names, and if they match,
  703.            the files are excluded.    Notice that agrep matches to
  704.            parts of    the string!  e.g., agrep /ftp/pub will match
  705.            /home/ftp/pub and /ftp/pub/whatever.  So, if you    want
  706.            to exclude /ftp/pub/core, you just list it, as is, in
  707.            the .glimpse_exclude file.  If you put
  708.            "/home/ftp/pub/cdrom" in    .glimpse_exclude, every    file
  709.            name that matches that string will be excluded, meaning
  710.            all files below it.  You    can use    ^ to indicate the
  711.            beginning of a file name, and $ to indicate the end of
  712.            one, and    you can    use * and ? in the usual way.  For
  713.            example /ftp/*html will exclude /ftp/pub/foo.html, but
  714.            will also exclude /home/ftp/pub/html/whatever;  if you
  715.            want to exclude files that start    with /ftp and end with
  716.            html use    ^/ftp*html$ Notice that    putting    a * at the
  717.            beginning or at the end is redundant (in    fact, in this
  718.            case glimpseindex will remove the * when    it does    the
  719.            indexing).  No other meta characters are    allowed    in
  720.  
  721.  
  722.  
  723.      Page 11                         (printed 11/3/95)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  731.  
  732.  
  733.  
  734.            .glimpse_exclude    (e.g., don't use .* or # or |).     Lines
  735.            with * or ? must    have no    more than 30 characters.
  736.            Notice that, although the index itself will not be
  737.            indexed,    the list of file names (.glimpse_filenames)
  738.            will be indexed unless it is explicitly listed in
  739.            .glimpse_exclude.
  740.  
  741.       ....gggglllliiiimmmmppppsssseeee____ffffiiiilllltttteeeerrrrssss
  742.            See the description above for the -z option.
  743.  
  744.       ....gggglllliiiimmmmppppsssseeee____iiiinnnncccclllluuuuddddeeee
  745.            contains    a list of files    that glimpseindex is
  746.            explicitly told to _i_n_c_l_u_d_e in the index even though
  747.            they may    look like non-text files.  Symbolic links are
  748.            followed    by glimpseindex    only if    they are specifically
  749.            included    here.  If a file is in both .glimpse_exclude
  750.            and .glimpse_include it will be excluded.
  751.  
  752.       ....gggglllliiiimmmmppppsssseeee____ffffiiiilllleeeennnnaaaammmmeeeessss
  753.            contains    the list of all    indexed    file names, one    per
  754.            line.  This is an ASCII file that can also be used with
  755.            agrep to    search for a file name leading to a fast find
  756.            command.     For example,
  757.            glimpse 'count#\.c$' ~/.glimpse_filenames
  758.            will output the names of    all (indexed) .c files that
  759.            have 'count' in their name (including anywhere on the
  760.            path from the index).  Setting the following alias in
  761.            the .login file may be useful:
  762.            alias findfile 'glimpse -h :1 ~/.glimpse_filenames'
  763.  
  764.       .gggglllliiiimmmmppppsssseeee____iiiinnnnddddeeeexxxx
  765.            contains    the index.  The    index consists of lines, each
  766.            starting    with a word followed by    a list of block
  767.            numbers (unless the -o or -b options are    used, in which
  768.            case each word is followed by an    offset into the    file
  769.            .glimpse_partitions where all pointers are kept).  The
  770.            block/file numbers are stored in    binary form, so    this
  771.            is not an ASCII file.
  772.  
  773.       ....gggglllliiiimmmmppppsssseeee____mmmmeeeessssssssaaaaggggeeeessss
  774.            contains    the output of the -w option (see above).
  775.  
  776.       ....gggglllliiiimmmmppppsssseeee____ppppaaaarrrrttttiiiittttiiiioooonnnnssss
  777.            contains    the partition of the indexed space into    blocks
  778.            and, when the index is built with the -o    or -b options,
  779.            some part of the    index.    This file is used internally
  780.            by glimpse and it is a non-ASCII    file.
  781.  
  782.       ....gggglllliiiimmmmppppsssseeee____ssssttttaaaattttiiiissssttttiiiiccccssss
  783.            contains    some statistics    about the makeup of the    index.
  784.            Useful for some advanced    applications and customization
  785.            of glimpse.
  786.  
  787.  
  788.  
  789.      Page 12                         (printed 11/3/95)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  797.  
  798.  
  799.  
  800.       ....gggglllliiiimmmmppppsssseeee____ttttuuuurrrrbbbboooo
  801.            An added    data structure (used under glimpseindex    -o or
  802.            -b only)    that helps to speed up queries significantly
  803.            for large indexes.  Its size is 0.25MB.    Glimpse    will
  804.            work without it if needed.
  805.  
  806.      SSSSTTTTRRRRUUUUCCCCTTTTUUUURRRREEEEDDDD    QQQQUUUUEEEERRRRIIIIEEEESSSS
  807.       Glimpse can search for Boolean combinations of
  808.       "attribute=value" terms by using the Harvest SOIF parser
  809.       library (in glimpse/libtemplate). To search this way,    the
  810.       index    must be    made by    using the -s option of glimpseindex
  811.       (this    can be used in conjunction with    other glimpseindex
  812.       options). For    glimpse    and glimpseindex to recognize
  813.       "structured" files, they must    be in SOIF format. In this
  814.       format, each value is    prefixed by an attribute-name with the
  815.       size of the value (in    bytes) present in "{}" after the name
  816.       of the attribute. For    example, The following lines are part
  817.       of an    SOIF file:
  818.       type{17}:      Directory-Listing
  819.       md5{32}:      3858c73d68616df0ed58a44d306b12ba
  820.       Any string can serve as an attribute name.  Glimpse
  821.       "pattern;type=Directory-Listing" will    search for "pattern"
  822.       only in files    whose type is "Directory-Listing".  The    file
  823.       itself is considered to be one "object" and its name/url
  824.       appears as the first attribute with an "@" prefix; e.g.,
  825.       @FILE    { http://xxx...    } The scope of Boolean operations
  826.       changes from records (lines) to whole    files when structured
  827.       queries are used in glimpse (since individual    query terms
  828.       can look at different    attributes and they may    not be
  829.       "covered" by the record/line).  Note that glimpse can    only
  830.       search for patterns in the value parts of the    SOIF file:
  831.       there    are some attributes (like the TTL, MD5,    etc.) that are
  832.       interpreted by Harvest's internal routines.  See
  833.       http://harvest.cs.colorado.edu/harvest/user-manual/ for more
  834.       detailed information of the SOIF format.
  835.  
  836.      RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
  837.       1.   U. Manber and S.    Wu, "GLIMPSE: A    Tool to    Search Through
  838.            Entire File Systems," _U_s_e_n_i_x _W_i_n_t_e_r _1_9_9_4    _T_e_c_h_n_i_c_a_l
  839.            _C_o_n_f_e_r_e_n_c_e, San Francisco (January 1994), pp. 23-32.
  840.            Also, Technical Report #TR 93-34, Dept. of Computer
  841.            Science,    University of Arizona, October 1993 (a
  842.            postscript file is available by anonymous ftp at
  843.            cs.arizona.edu:reports/1993/TR93-34.ps).
  844.  
  845.       2.   S. Wu and U. Manber, "Fast Text Searching Allowing
  846.            Errors,"    _C_o_m_m_u_n_i_c_a_t_i_o_n_s _o_f _t_h_e _A_C_M 33335555 (October 1992),
  847.            pp. 83-91.
  848.  
  849.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  850.       aaaaggggrrrreeeepppp(1), eeeedddd(1), eeeexxxx(1), gggglllliiiimmmmppppsssseeeeiiiinnnnddddeeeexxxx(1), gggglllliiiimmmmppppsssseeeesssseeeerrrrvvvveeeerrrr(1),
  851.       ggggrrrreeeepppp(1), sssshhhh(1), ccccsssshhhh(1).
  852.  
  853.  
  854.  
  855.      Page 13                         (printed 11/3/95)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  863.  
  864.  
  865.  
  866.      LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
  867.       The index of glimpse is word based.  A pattern that contains
  868.       more than one    word cannot be found in    the index.  The    way
  869.       glimpse overcomes this weakness is by    splitting any multi-
  870.       word pattern into its    set of words and looking for all of
  871.       them in the index.  For example, gggglllliiiimmmmppppsssseeee ''''lllliiiinnnneeeeaaaarrrr
  872.       pppprrrrooooggggrrrraaaammmmmmmmiiiinnnngggg'''' will first consult the index to find all    files
  873.       containing both _l_i_n_e_a_r and _p_r_o_g_r_a_m_m_i_n_g, and then apply agrep
  874.       to find the combined pattern.     This is usually an effective
  875.       solution, but    it can be slow for cases where both words are
  876.       very common, but their combination is    not.
  877.  
  878.       As was mentioned in the section on PATTERNS above, some
  879.       characters serve as meta characters for glimpse and need to
  880.       be preceded by '\' to    search for them.  The most common
  881.       examples are the characters '.' (which stands    for a wild
  882.       card), and '*' (the Kleene closure).    So, "glimpse ab.de"
  883.       will match abcde, but    "glimpse ab\.de" will not, and
  884.       "glimpse ab*de" will not match ab*de,    but "glimpse ab\*de"
  885.       will.     The meta character - is translated automatically to a
  886.       hypen    unless it appears between [] (in which case it denotes
  887.       a range of characters).
  888.  
  889.       The index of glimpse stores all patterns in lower case.
  890.       When glimpse searches    the index it first converts all
  891.       patterns to lower case, finds    the appropriate    files, and
  892.       then searches    the actual files using the original patterns.
  893.       So, for example, _g_l_i_m_p_s_e _A_B_C_X_Y_Z will first find all files
  894.       containing abcxyz in any combination of lower    and upper
  895.       cases, and then searches these files directly, so only the
  896.       right    cases will be found.  One problem with this approach
  897.       is discovering misspellings that are caused by wrong cases.
  898.       For example, _g_l_i_m_p_s_e -_B _a_b_c_X_Y_Z will first search the index
  899.       for the best match to    abcxyz (because    the pattern is
  900.       converted to lower case); it will find that there are
  901.       matches with no errors, and will go to those files to    search
  902.       them directly, this time with    the original upper cases. If
  903.       the closest match is,    say AbcXYZ, glimpse may    miss it,
  904.       because it doesn't expect an error.  Another problem is
  905.       speed.  If you search    for "ATT", it will look    at the index
  906.       for "att".  Unless you use -w    to match the whole word,
  907.       glimpse may have to search all files containing, for
  908.       example, "Seattle" which has "att" in    it.
  909.  
  910.       There    is no size limit for simple patterns and simple
  911.       patterns within Boolean expressions.    More complicated
  912.       patterns, such as regular expressions, are currently limited
  913.       to approximately 30 characters.  Lines are limited to    1024
  914.       characters.  Records are limited to 48K, and may be
  915.       truncated if they are    larger than that.  The limit of    record
  916.       length can be    changed    by modifying the parameter Max_record
  917.       in agrep.h.
  918.  
  919.  
  920.  
  921.      Page 14                         (printed 11/3/95)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 11111111,,,,    1111999999995555))))        GGGGLLLLIIIIMMMMPPPPSSSSEEEE((((llll))))
  929.  
  930.  
  931.  
  932.       Glimpseindex does not    index words of size > 64.
  933.  
  934.      BBBBUUUUGGGGSSSS
  935.       A Boolean AND    query that includes two    patterns one of    which
  936.       is a prefix of the other (or equal to    the other) may not
  937.       work correctly.  Essentially glimpse will find the smallest
  938.       pattern first, but will not backtrack    to try to check    again
  939.       if it    matches    another    pattern.  (We are not sure whether
  940.       this is a bug    or a feature, because there is no apparent
  941.       reason to have patterns like that.)
  942.  
  943.       A Boolean query with a pattern of length 1 (i.e., one
  944.       character only) may miss matches.
  945.  
  946.       In some rare cases, regular expressions using    * or # may not
  947.       match    correctly.
  948.  
  949.       A query that contains    no alphanumeric    characters is not
  950.       recommended (unless glimpse is used as agrep and the file
  951.       names    are provided).    This is    an understatement.
  952.  
  953.       Please send bug reports or comments to
  954.       glimpse@cs.arizona.edu.
  955.  
  956.      DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  957.       Exit status is 0 if any matches are found, 1 if none,    2 for
  958.       syntax errors    or inaccessible    files.
  959.  
  960.      AAAAUUUUTTTTHHHHOOOORRRRSSSS
  961.       Udi Manber and Burra Gopal, Department of Computer Science,
  962.       University of    Arizona, and Sun Wu, the National Chung-Cheng
  963.       University, Taiwan. (Email:  glimpse@cs.arizona.edu)
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.      Page 15                         (printed 11/3/95)
  988.  
  989.  
  990.  
  991.